package com.ttg.model.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ttg.common.entities.BasePage;
import com.ttg.model.dto.GetVipTagListDto;
import com.ttg.model.dto.TagPageDTO;
import com.ttg.model.dto.TagVipPageAgentDto;
import com.ttg.model.pojo.TagInfo;
import com.ttg.model.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * @author ZQ
 * @version 1.0
 * @Description
 * @date 2021/1/15 17:07
 */
public interface TagInfoMapper extends BaseMapper<TagInfo> {


    BasePage<TagVo> tagPage(BasePage page,
                            @Param("reqDto") TagPageDTO reqDto);

    BasePage<TagVo> tagPageByVip(BasePage page,
                                      @Param("vipId")Long vipId);

    BasePage<TagMctVo> tagPageByMct(BasePage basePage ,@Param("mctNo") String mctNo);

    BasePage<MctTagPageVo> mctTagPage(BasePage basePage , @Param("mctId") Long mctId,@Param("mctName") String mctName,@Param("tagId") Long tagId);

    BasePage<GetVipTagListVo> getVipTagList(BasePage basePage,@Param("dto") GetVipTagListDto dto);

    List<TagVipVo> tagVipPage(@Param("page")Integer page,
                                  @Param("pageSize")Integer pageSize,
                                  @Param("tagId")Long tagId,
                                  @Param("vipId")Long adminId,
                                  @Param("vipName") String adminName,
                                  @Param("mobile")String mobile,
                                  @Param("agents") Set<String> agents);

    BasePage<MemberConfigTagsForBindVo> queryTagsForBind(BasePage<MemberConfigTagsForBindVo> pageSetting, @Param("gradeId") Integer gradeId, @Param("tagType") Integer tagType);

    List<TagVipPageAgentDto> getAgents(@Param("tagId") Long tagId);

    Long tagVipPageCount(@Param("tagId")Long tagId,
                         @Param("vipId")Long adminId,
                         @Param("vipName") String adminName,
                         @Param("mobile")String mobile);

    List<VipTag> getTagListByClass(@Param("vipId") Integer vipId, @Param("tagClassId") Integer tagClassId);
}